home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d20 / msgq160s.arc / BINKLOG.C < prev    next >
Text File  |  1991-10-26  |  1KB  |  66 lines

  1. /*
  2.  * Log in BINKLEY.LOG
  3.  * Written by P.J. Muller
  4.  */
  5.  
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <dos.h>
  9. #include <time.h>
  10. #include <string.h>
  11.  
  12. #define EOS '\0'
  13.  
  14. static char *mtext[]={    "Jan", "Feb", "Mar", "Apr", "May", "Jun",
  15.             "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
  16.  
  17. void status_line (FILE *status_log, char *error)
  18. {
  19.   time_t ltime;
  20.   struct tm *tp;
  21.  
  22.   (void)time (<ime);
  23.   tp = localtime (<ime);
  24.  
  25.   fprintf (status_log, "%c %02i %03s %02i:%02i:%02i LOG %s\n", ' ',
  26.       tp->tm_mday, mtext[tp->tm_mon], tp->tm_hour, tp->tm_min, tp->tm_sec,
  27.       error);
  28. }
  29.  
  30. int main(void)
  31. {
  32.   char *binkpath;
  33.   char binklog[100];
  34.   char cmd[130], *d;
  35.   char far *cmdline;
  36.   FILE *log = NULL;
  37.  
  38.   if ((binkpath = getenv("BINKLEY")) == NULL)
  39.     binkpath = "";
  40.  
  41.   sprintf(binklog, "%s%sBINKLEY.LOG", binkpath,
  42.     (strlen(binkpath) > 3) && (binkpath[strlen(binkpath)-1] == '\\') ?
  43.         "" : "\\");
  44.  
  45.   if ((log = fopen(binklog, "at")) == NULL) {
  46.     fprintf(stderr, "Error opening %s\n", binklog);
  47.     exit(255);
  48.   }
  49.  
  50.   cmdline = MK_FP(_psp, 0x82);
  51.   cmdline[127] = EOS;
  52.   d = cmd;
  53.   while ((*d++ = *cmdline++) != EOS)
  54.     /* nothing */;
  55.   if ((d = strchr(cmd, '\r')) != NULL)
  56.     *d = EOS;
  57.  
  58.   (void)puts(cmd);
  59.   status_line(log, cmd);
  60.  
  61.   (void)fclose(log);
  62.  
  63.   return 0;
  64. } /* main */
  65.  
  66.